#!/bin/bash

set -e

verbose() {
	! test -z "$VERBOSE"
}

verbose && echo "Running tests..."
tools/test

verbose && echo "Formatting code..."
tools/format

verbose && echo "Measuring line lengths..."
tools/measure

# SITE_DIR is the final location where we want generated content to be
SITE_DIR="public"

# GENERATE_DIR is where the content will be generated initially
GENERATE_DIR="$(mktemp -d)"

function cleanup() {
  rm -rf "$GENERATE_DIR"
}
trap cleanup EXIT

verbose && echo "Generating HTML to $GENERATE_DIR..."
tools/generate $GENERATE_DIR

# In TESTING mode, make sure that the generated content is identical to
# what's already in SITE_DIR. If a difference is found, this script exits
# with an error.
if [[ ! -z "$TESTING" ]]; then
	echo "Comparing $GENERATE_DIR with $SITE_DIR..."
	diff -r "$GENERATE_DIR" "$SITE_DIR"
fi

verbose && echo "Copying $GENERATE_DIR to $SITE_DIR"
cp -rf "${GENERATE_DIR}/." "$SITE_DIR"
